package cn.pconline.autoclub.util.ubb;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 处理UBB解析的节点事件，将整段UBB转换成HTML的UBB解析事件监听器
 * 去除了em表情增加到Html内容里,在保10洁判断是否发送纯表情或纯图片的判断
 * 2010-11-17 黄湘
 *
 * @author xhchen
 */
public class UBBHandler2 extends UBBHandler{
	static final Log LOG = LogFactory.getLog(UBBHandler2.class);

	/**
	 * 处理节点开始事件
	 * 
	 * @param name		节点名称
	 * @param attribute	节点属性，可能为 null
	 * @param pos		UBB源码中的当前字符位置，主要用于出错是提示
	 */
	public void startElement(String name, String attribute, int pos) {
		// 将[*]当成普通的文本来处理
		if (name.length() == 1 && name.charAt(0) == '*') {
			stack.peek().appendText("[*]");
			return;
		}

		if (builderMap.containsKey(name.toLowerCase())) {
			stack.push(buildNode(name, attribute));
		} else {
			// [em.*?]属于自动关闭的标签
			if (name.startsWith("em") && name.length() > 2) {
				//去除的语句
				//2010-11-17 黄湘
				//stack.peek().appendNode(builderMap.get("emot").build(name, null), stack);
			} else {
				StringBuilder sb = new StringBuilder();
				sb.append('[').append(name);
				if (attribute != null) sb.append('=').append(attribute);
				sb.append(']');
				stack.peek().appendText(sb);
			}
		}
	}
}
